D1 has no transactions — using client.batch() for multi-step writes
Cloudflare D1 has no BEGIN/COMMIT. The official answer is client.batch(), but it has four subtle rules worth writing down. Worked example from DuitGee's fund-transfer handler.
Migrate a Cloudflare D1 database to another account
Exporting a D1 database with wrangler and replaying it on a different Cloudflare account — plus the foreign-key ordering error that always trips people up on first try.
Integrate Better Auth and Google One Tap with Hono and SvelteKit
A walkthrough of wiring Better Auth with Google One Tap into a SvelteKit app, using Hono for the API layer and Cloudflare D1 + Workers for the backend.
Drizzle with Cloudflare D1 — the everyday usage guide
The read, write, and soft-delete patterns I reach for every day when working against Cloudflare D1 through Drizzle — dynamic filters, joins, RETURNING, audit fields, and the sql template. Worked examples from DuitGee.
Setting up D1 Database with Drizzle in a Hono Cloudflare Worker App
This guide covers configuring a D1 database using Drizzle in a Hono app deployed using Cloudflare Workers.